using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Data; 
using System.Data.SqlClient; 
using System.Data.SqlTypes; 
using SolucionUtiles; 
using SolucionEntidad; 
namespace SolucionDatos 
{ 
   public class ComprobanteArticuloDao 
    { 
        private SqlConnection cn; 
        public ComprobanteArticuloDao(SqlConnection cn) 
        { 
           this.cn = cn; 
        } 
        public void insert(ComprobanteArticulo obj)
        { 
           SqlCommand command = new SqlCommand("INSERT INTO comprobante_articulo " + 
           "(numeroComprobante,codigoArticulo,cantidadArticulo,precioVenta,precioUnitario,cantidadAfectada,descripIncidencia,estadoIncidencia,fechaVencimiento) VALUES" + 
           "(@numeroComprobante,@codigoArticulo,@cantidadArticulo,@precioVenta,@precioUnitario,@cantidadAfectada,@descripIncidencia,@estadoIncidencia,@fechaVencimiento)", this.cn); 

command.Parameters.Add(new SqlParameter("@numeroComprobante", obj.numeroComprobante)); 
command.Parameters.Add(new SqlParameter("@codigoArticulo", obj.codigoArticulo)); 
command.Parameters.Add(new SqlParameter("@cantidadArticulo", obj.cantidadArticulo)); 
command.Parameters.Add(new SqlParameter("@precioVenta", obj.precioVenta)); 
command.Parameters.Add(new SqlParameter("@precioUnitario", obj.precioUnitario)); 
command.Parameters.Add(new SqlParameter("@cantidadAfectada", obj.cantidadAfectada)); 
command.Parameters.Add(new SqlParameter("@descripIncidencia", obj.descripIncidencia)); 
command.Parameters.Add(new SqlParameter("@estadoIncidencia", obj.estadoIncidencia)); 
command.Parameters.Add(new SqlParameter("@fechaVencimiento", obj.fechaVencimiento)); 
command.ExecuteNonQuery(); 
} 
  		public void update(ComprobanteArticulo obj) 
    	{ 
        	SqlCommand command = new SqlCommand("UPDATE ComprobanteArticulo " + 
			" SET " + 
"cantidadArticulo=@cantidadArticulo" + 
",precioVenta=@precioVenta" + 
",precioUnitario=@precioUnitario" + 
",cantidadAfectada=@cantidadAfectada" + 
",descripIncidencia=@descripIncidencia" + 
",estadoIncidencia=@estadoIncidencia" + 
",fechaVencimiento=@fechaVencimiento" + 
 " WHERE " + 
"numeroComprobante=@numeroComprobante" 
+" AND codigoArticulo=@codigoArticulo" 
,this.cn); 
command.Parameters.Add(new SqlParameter("@numeroComprobante", obj.numeroComprobante)); 
command.Parameters.Add(new SqlParameter("@codigoArticulo", obj.codigoArticulo)); 
command.Parameters.Add(new SqlParameter("@cantidadArticulo", obj.cantidadArticulo)); 
command.Parameters.Add(new SqlParameter("@precioVenta", obj.precioVenta)); 
command.Parameters.Add(new SqlParameter("@precioUnitario", obj.precioUnitario)); 
command.Parameters.Add(new SqlParameter("@cantidadAfectada", obj.cantidadAfectada)); 
command.Parameters.Add(new SqlParameter("@descripIncidencia", obj.descripIncidencia)); 
command.Parameters.Add(new SqlParameter("@estadoIncidencia", obj.estadoIncidencia)); 
command.Parameters.Add(new SqlParameter("@fechaVencimiento", obj.fechaVencimiento)); 
command.ExecuteNonQuery(); 
} 
       public void delete(ComprobanteArticulo obj){ 
SqlCommand command = new SqlCommand("DELETE FROM comprobante_articulo WHERE "  
 +"numeroComprobante=@numeroComprobante" 
+" AND codigoArticulo=@codigoArticulo" 
, this.cn); 
command.Parameters.Add(new SqlParameter("@numeroComprobante", obj.numeroComprobante)); 
command.Parameters.Add(new SqlParameter("@codigoArticulo", obj.codigoArticulo)); 
command.ExecuteNonQuery(); 
} 
        public ComprobanteArticulo get(ComprobanteArticulo obj) 
{ 
   ComprobanteArticulo record = null; 
    SqlCommand command = new SqlCommand("SELECT numeroComprobante,codigoArticulo,cantidadArticulo,precioVenta,precioUnitario,cantidadAfectada,descripIncidencia,estadoIncidencia,fechaVencimiento FROM comprobante_articulo where " 
 +"numeroComprobante=@numeroComprobante" 
+" AND codigoArticulo=@codigoArticulo" 
, this.cn); 
command.Parameters.Add(new SqlParameter("@numeroComprobante", obj.numeroComprobante)); 
command.Parameters.Add(new SqlParameter("@codigoArticulo", obj.codigoArticulo)); 

    SqlDataReader dr = command.ExecuteReader();
dr.Read(); 
record = new ComprobanteArticulo(); 
if (dr["numeroComprobante"] == DBNull.Value) { record.numeroComprobante = SqlString.Null; } else { record.numeroComprobante = (String)dr["numeroComprobante"]; } 
if (dr["codigoArticulo"] == DBNull.Value) { record.codigoArticulo = SqlString.Null; } else { record.codigoArticulo = (String)dr["codigoArticulo"]; } 
if (dr["cantidadArticulo"] == DBNull.Value) { record.cantidadArticulo = SqlInt32.Null; } else { record.cantidadArticulo = (Int32)dr["cantidadArticulo"]; } 
if (dr["precioVenta"] == DBNull.Value) { record.precioVenta = SqlDecimal.Null; } else { record.precioVenta = (Decimal)dr["precioVenta"]; } 
if (dr["precioUnitario"] == DBNull.Value) { record.precioUnitario = SqlDecimal.Null; } else { record.precioUnitario = (Decimal)dr["precioUnitario"]; } 
if (dr["cantidadAfectada"] == DBNull.Value) { record.cantidadAfectada = SqlInt32.Null; } else { record.cantidadAfectada = (Int32)dr["cantidadAfectada"]; } 
if (dr["descripIncidencia"] == DBNull.Value) { record.descripIncidencia = SqlString.Null; } else { record.descripIncidencia = (String)dr["descripIncidencia"]; } 
if (dr["estadoIncidencia"] == DBNull.Value) { record.estadoIncidencia = SqlInt32.Null; } else { record.estadoIncidencia = (Int32)dr["estadoIncidencia"]; } 
if (dr["fechaVencimiento"] == DBNull.Value) { record.fechaVencimiento = SqlDateTime.Null; } else { record.fechaVencimiento = (DateTime)dr["fechaVencimiento"]; } 
this.cn.Close(); 
return record; 
} 
     public List<ComprobanteArticulo> getList() 
{ 
   List<ComprobanteArticulo> list = new List<ComprobanteArticulo>(); 
    SqlCommand command = new SqlCommand("SELECT numeroComprobante,codigoArticulo,cantidadArticulo,precioVenta,precioUnitario,cantidadAfectada,descripIncidencia,estadoIncidencia,fechaVencimiento FROM comprobante_articulo", this.cn); 
    SqlDataReader dr = command.ExecuteReader(); 
    while (dr.Read()) 
    { 
ComprobanteArticulo obj = new ComprobanteArticulo(); 
if (dr["numeroComprobante"] == DBNull.Value) { obj.numeroComprobante = SqlString.Null; } else { obj.numeroComprobante = (String)dr["numeroComprobante"]; } 
if (dr["codigoArticulo"] == DBNull.Value) { obj.codigoArticulo = SqlString.Null; } else { obj.codigoArticulo = (String)dr["codigoArticulo"]; } 
if (dr["cantidadArticulo"] == DBNull.Value) { obj.cantidadArticulo = SqlInt32.Null; } else { obj.cantidadArticulo = (Int32)dr["cantidadArticulo"]; } 
if (dr["precioVenta"] == DBNull.Value) { obj.precioVenta = SqlDecimal.Null; } else { obj.precioVenta = (Decimal)dr["precioVenta"]; } 
if (dr["precioUnitario"] == DBNull.Value) { obj.precioUnitario = SqlDecimal.Null; } else { obj.precioUnitario = (Decimal)dr["precioUnitario"]; } 
if (dr["cantidadAfectada"] == DBNull.Value) { obj.cantidadAfectada = SqlInt32.Null; } else { obj.cantidadAfectada = (Int32)dr["cantidadAfectada"]; } 
if (dr["descripIncidencia"] == DBNull.Value) { obj.descripIncidencia = SqlString.Null; } else { obj.descripIncidencia = (String)dr["descripIncidencia"]; } 
if (dr["estadoIncidencia"] == DBNull.Value) { obj.estadoIncidencia = SqlInt32.Null; } else { obj.estadoIncidencia = (Int32)dr["estadoIncidencia"]; } 
if (dr["fechaVencimiento"] == DBNull.Value) { obj.fechaVencimiento = SqlDateTime.Null; } else { obj.fechaVencimiento = (DateTime)dr["fechaVencimiento"]; } 
list.Add(obj); 
} 
return list; 
} 
} 
} 
